package org.jsola.hr.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.core.vo.BaseVO;
import org.jsola.user.vo.UserVO;

import java.util.Date;
import java.util.List;

import static org.jsola.core.example.BaseExample.*;
import static org.jsola.notice.example.NoticeRuleSettingExample.*;

/**
 * 消息提醒规则设置
 *
 * @author wcl
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "【消息提醒规则设置】列表展示对象")
@Data
public class HrNoticeRuleSettingListVO extends BaseVO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = N_ID, example = E_ID)
    private Long id;

    @ApiModelProperty(notes = N_COMPANY_ID, example = E_COMPANY_ID)
    private String companyId;

    @ApiModelProperty(notes = N_MODULE_TYPE, example = E_MODULE_TYPE)
    private String moduleType;

    @ApiModelProperty(notes = N_NOTICE_TYPE_ID, example = E_NOTICE_TYPE_ID)
    private Long noticeTypeId;

    @ApiModelProperty(notes = N_NOTICE_TYPE_CODE, example = E_NOTICE_TYPE_CODE)
    private String noticeTypeCode;

    @ApiModelProperty(notes = N_ENABLE_STATUS, example = E_ENABLE_STATUS)
    private Boolean enableStatus;

    @ApiModelProperty(notes = N_EMP_TYPE, example = E_EMP_TYPE)
    private String empType;

    @ApiModelProperty(notes = N_ROLE_IDS, example = E_ROLE_IDS)
    private String roleIds;

    @ApiModelProperty(notes = N_USER_IDS, example = E_USER_IDS)
    private String userIds;

    @ApiModelProperty(notes = N_USER_ID_PARAM, example = E_USER_ID_PARAM)
    private String userIdParam;

    @ApiModelProperty(notes = N_RECEIVE_TYPE, example = E_RECEIVE_TYPE)
    private String receiveType;

    @ApiModelProperty(notes = N_RECEIVE_DATE_TYPE, example = E_RECEIVE_DATE_TYPE)
    private Integer receiveDateType;

    @ApiModelProperty(notes = N_RECEIVE_DATE_JSON, example = E_RECEIVE_DATE_JSON)
    private String receiveDateJson;

    @ApiModelProperty(notes = N_GMT_CREATE, example = E_GMT_CREATE)
    private Date gmtCreate;

    @ApiModelProperty(notes = N_GMT_MODIFIED, example = E_GMT_MODIFIED)
    private Date gmtModified;

    @ApiModelProperty(notes = "用户信息", example = E_GMT_MODIFIED)
    private List<UserVO> userVOList;

    @ApiModelProperty(notes = "通知时间设置", example = E_GMT_MODIFIED)
    private HrNoticeDateSettingVO hrNoticeDateSettingVO;

    @ApiModelProperty(notes = "员工信息")
    private HrNoticeUserIdJsonVO hrNoticeUserIdJsonVO;

}

